package br.com.doctors.modelo.util;
import org.joda.time.LocalDate;
import org.joda.time.LocalTime;
import org.joda.time.Minutes;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;
public class ParametrosAgendamento {
private LocalTime horaInicioAtendimento;
private LocalTime horaFimAtendimento;
private DateTimeFormatter horaFormatter;
private DateTimeFormatter dataFormatter;
private Minutes minutosPorConsulta;
private LocalDate dataInicial;
private LocalDate dataFinal;
private LocalTime horaInicioAlmoco;
private LocalTime horaFimAlmoco;
public ParametrosAgendamento() {
}
public static ParametrosAgendamento getParametrosDefault(){
ParametrosAgendamento padrao = new ParametrosAgendamento();
padrao.setHoraInicioAtendimento(new LocalTime(8, 0));
padrao.setHoraFimAtendimento(new LocalTime(17, 30));
padrao.setDataInicial(new LocalDate().plusDays(1));
padrao.setDataFinal(new LocalDate(padrao.getDataInicial()).plusMonths(2));
padrao.setMinutosPorConsulta(Minutes.minutes(30));
padrao.setDataFormatter(DateTimeFormat.forPattern("dd/MM/yyyy"));
padrao.setHoraFormatter(DateTimeFormat.forPattern("HH:mm"));
padrao.setHoraInicioAlmoco(new LocalTime(11,59));
padrao.setHoraFimAlmoco(new LocalTime(14,00));
return padrao;
}
public LocalTime getHoraInicioAtendimento() {
return horaInicioAtendimento;
}
public LocalTime getHoraFimAtendimento() {
return horaFimAtendimento;
}
public DateTimeFormatter getHoraFormatter() {
return horaFormatter;
}
public DateTimeFormatter getDataFormatter() {
return dataFormatter;
}
public Minutes getMinutosPorConsulta() {
return minutosPorConsulta;
}
public LocalDate getDataInicial() {
return dataInicial;
}
public LocalDate getDataFinal() {
return dataFinal;
}
public void setHoraInicioAtendimento(LocalTime horaInicioAtendimento) {
this.horaInicioAtendimento = horaInicioAtendimento;
}
public void setHoraFimAtendimento(LocalTime horaFimAtendimento) {
this.horaFimAtendimento = horaFimAtendimento;
}
public void setHoraFormatter(DateTimeFormatter horaFormatter) {
this.horaFormatter = horaFormatter;
}
public void setDataFormatter(DateTimeFormatter dataFormatter) {
this.dataFormatter = dataFormatter;
}
public void setMinutosPorConsulta(Minutes minutosPorConsulta) {
this.minutosPorConsulta = minutosPorConsulta;
}
public void setDataInicial(LocalDate dataInicial) {
this.dataInicial = dataInicial;
}
public void setDataFinal(LocalDate dataFinal) {
this.dataFinal = dataFinal;
}
public LocalTime proximaConsultaApos(LocalTime horario){
return horario.plus(minutosPorConsulta);
}
public boolean estaNoHorarioAlmoco(LocalTime horaAtual) {
return horaAtual.isAfter(horaInicioAlmoco) && horaAtual.isBefore(horaFimAlmoco);
}
public LocalTime getHoraInicioAlmoco() {
return horaInicioAlmoco;
}
public LocalTime getHoraFimAlmoco() {
return horaFimAlmoco;
}
public void setHoraInicioAlmoco(LocalTime horaInicioAlmoco) {
this.horaInicioAlmoco = horaInicioAlmoco;
}
public void setHoraFimAlmoco(LocalTime horaFimAlmoco) {
this.horaFimAlmoco = horaFimAlmoco;
}
}